const {logger}=require("./logger");//日志记录
const tools = require('./tools')
const axios = require('axios');

const dateFormat = tools.dateFormat

module.exports = {
    /**
     * 响应总函数
     * @param number code 状态码
     * @param string message 提示文字
     * @param number total 查询总数量
     * @param object data 数据
     * @param object err 错误信息
     * @param object req 错误信息
     * @param object funName 错误信息记录名称
     * */
    returnData({code = 200, message, total=0,data = {},err,req={},funName} = {}) {
        if (code == 200 && !message) message = "请求成功！";
        if (code == -1 && !message) message = "服务器异常！";
        if (code == 203 && !message) message = "登陆失效，请重新登陆！";
        let res={code, message, data};
        if(total!==0) res.total=total;
        if(err) res.err=err;
        //记录错误日志
        if(code!=200) logger.error({err,code,message,req});
        return res;
    },
    /**
     * 分页页码处理
     * @param number page 页码
     * @param number size 最大数量
     * */
    pageSize(page,size){
        if(!page){page=1};
        if(!size){size=10};
        page = (page-1)*size;
        size = parseInt(size);
        return {page,size}
    },
    /**
     * 查询总数
     * @param string name 表名
     * @param string where 查询条件
     * @param object res 主体
    * */
    getSum({name,where,res,req}) {
        return new Promise((resolve, reject) => {
            let sql = `SELECT count(1) FROM ${name} ${where}`;
            pool.query(sql, (err, result) => {
                if (err) return res.send(this.returnData({code: -1, message: "获取数据总数错误！",err,req}));
                resolve({ total: result[0]["count(1)"] });
            });
        })
    },
    dateFormat,
};




